SpreadJS 纯前端表格控件 - V19.0 新特性
协同插件(Collaboration Add-on)— 正式版本
面向企业级实时协作场景,提供类似 Excel Online / Google Sheets 的多人协同编辑体验。
核心能力
实时协同编辑与冲突解决
- 支持多用户同时编辑同一工作簿,操作实时同步
- 基于 OT(Operational Transformation)机制自动解决并发冲突
- 所有编辑行为被转换为 Ops,并通过 ChangeSet 进行原子化同步
协作者可视化(Presence & UI)
- 显示协作者光标、选区,实时感知他人操作
- 支持自定义用户认证与访问控制
权限与模式控制
- 查看模式(View Mode):只读但允许本地交互(排序、调整大小等)
- 编辑模式(Edit Mode):完整实时协同编辑
协作撤销 / 重做
- 撤销、重做操作在所有客户端间同步
- 不影响其他用户操作,保证协作一致性
企业级协作价值
- 自动版本管理,避免“文件_v2_final”式混乱
- 多人并行编辑,协作效率显著提升
- 支持精细化权限控制,保障数据安全
卓越的性能表现
更多有关 SpreadJS 协同能力,请查看协同插件官网
AI 智能助手插件(AI Add-on)— 正式版本
将 AI 能力直接引入电子表格,降低数据分析与公式使用门槛。
主要功能
- AI 内置函数:直接在单元格中调用 AI 能力
- 公式生成与解释:自然语言生成公式,并可解释计算逻辑
- 透视表生成与数据分析:基于数据自动生成分析结果
更多有关 SpreadJS AI 插件,请查看AI 插件官网
评论(Threaded Comments)
为单元格提供结构化、可追溯的讨论能力,完善协作闭环。
功能亮点
- 单元格级线程评论,多人回复形成讨论链
- 支持 @ 提及、已解决 / 重新打开状态
- 提供完整 API 与事件,便于业务集成
- 支持评论面板集中管理与快速导航
WebWorker 增量计算(Incremental Calculation)
将公式计算从 UI 线程迁移到 Web Worker,大幅提升大数据量场景下的交互体验。
1、主线程彻底解放,交互丝滑无卡顿
WebWorker 作为浏览器提供的后台线程能力,可独立于主线程执行计算任务。SpreadJS V19.0 将所有公式运算、数据计算逻辑迁移至 WebWorker 中运行,主线程仅负责界面渲染与用户交互。无论后台进行多么复杂的运算,前端都能保持流畅的操作体验,滚动、编辑、切换表格时再也不会出现“假死”或布局偏移。
2、增量计算精准发力,运算效率指数级提升
传统计算模式下,任意单元格数据变化都会触发整个表格的全量重算,效率极低。而 SpreadJS 的增量计算逻辑会智能识别数据变更的影响范围,仅对关联单元格进行精准计算,避免无效运算。
- 包含 4 万复杂公式的表格文件,老版本增量计算需 12.3s,V19.0 版本仅需 2.2s,计算效率提升 5.6 倍;
- 1000ms 帧数下,交互响应速度从 616.7ms 优化至 250.0ms,布局偏移问题彻底解决;
- 支持连续批量公式更新场景,通过
方法可实现计算完成后再执行排序、渲染等操作,避免中间状态错乱。waitForAllCalculations()
性能提升测试
| 测试场景 | 主线程增量计算 | SpreadJS V19.0 Web Worker 增量计算 |
|---|---|---|
| 文件 1 15万简单行级公式 |
12.3s | 2.2s |
| 文件 2 1000个 SUMIFS |
2.1s | 1.68s |
| 文件 3 12万复杂公式 |
6.7s | 4.9s |
| 文件 4 多 Sheet 5 万复杂公式 |
12.8s | 8.5s |
| 文件 5 2.5万公式依赖单元格 |
1.4s | 1.22s |
3、与 Excel 深度兼容,迁移零成本
SpreadJS V19.0 保持了与 Excel 计算逻辑的高度一致性,支持 Excel 的
calcOnDemand(按需计算)、
suspendCalcService(暂停计算服务)、
manual CalculationMode(手动计算模式)等核心特性,确保企业现有
Excel 表格迁移至 Web 端后,计算结果精准无误,开发者无需修改原有公式逻辑,迁移成本几乎为零。
4、轻量化集成,开发体验友好
新特性无需复杂的配置流程,仅需简单几步即可启用,同时提供灵活的 API 支持,适配不同开发场景:
- 支持脚本标签引入与 NPM 包两种集成方式,满足不同项目架构需求;
- 提供
开关、incrementalCalculation
异步等待方法等 API,便于开发者精准控制计算流程;waitForAllCalculations() - 支持计算服务暂停/恢复、批量公式更新等高级场景,适配复杂业务逻辑开发。
透视表(PivotTable)能力增强
拖拽排序(自定义排序)
- 直接拖拽字段项调整顺序
- 自动切换为“手动排序”模式
- 支持多种选择方式,交互更直观
日期分组(Date Group)
- 支持按天数分组(如按周统计)
- 可自定义起止时间与分组间隔
受保护工作表中使用透视表
- 在保护模式下保留必要交互能力
- 支持动态开启 / 关闭透视表操作权限
报表插件(ReportSheet)增强
导出 Excel 保留公式
- 导出后仍可在 Excel 中动态计算
- 避免公式被转换为静态值
填充空白数据(Fill Blank Data)
- 自动补齐分页或分组中的空白行 / 列
- 保证导出报表结构统一、美观
分页能力增强
- 主从报表支持明细数据分页
- 新增 R.CURRENTPAGE / R.PAGESCOUNT 分组级支持
(明细数据分页)
(R.CURRENTPAGE / R.PAGESCOUNT 主从表支持)
设计容器支持行 / 列合计
- 在容器内灵活展示汇总数据
- 提升报表可读性与分析效率
设计器增强
自定义排序是否包含表头
该功能旨在优化 SpreadJS Designer 的自定义排序对话框,用户排序时容易误选或漏选表头的问题。
通过新增“数据包含标题(My data has headers)”选项,允许用户一次性选择整个数据区域,SpreadJS 会自动识别并排除标题行进行排序,并在排序字段列表中显示标题行的列名,从而提升用户体验。
数据图表新增类型(数据图表)
- 瀑布图(Waterfall Chart):分析累计变化与差异
- K 线图(Candlestick Chart):金融行情分析
- OHLC 图表:开盘 / 最高 / 最低 / 收盘价格展示
- 组合图表支持:满足复杂业务可视化需求
历史版本
查看更多关于 SpreadJS 纯前端表格控件的历史版本。